package com.bjxst;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class IOFirst {
    public static void main(String[] args) {
        //读取文件内容 所以用 FileInputStream
       // InputStream is = new InputStream() 也可以这样创建
        //因为 FileInputStream是InputStream的子类
         // FileInputStream有异常，可能找不到文件
        // 每次用完都要关闭，所以先定义为null
        FileInputStream fis = null;
        try{
            //创建字节输入流
            fis = new FileInputStream("D:/a.txt");
            //读取文件内容
            // int  read() : 读取一个字节的数据，并将字节的值作为int类型返回（0-255之间的一个值）
            // 因为read返回的是int类型，所以a转换成一个十进制的整数
            int s1 = fis.read();//输出 97  97就是a对应的ascii码
            //每次读一个字符
            int s2 = fis.read();
            int s3 = fis.read();
            int s4 = fis.read();
            System.out.println(s1);
            System.out.println(s2);//98  对应b
            System.out.println(s3);//99  对应c
            System.out.println(s4);//由于文件件内容已经读取完毕，则返回-1

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            //关闭流对象
            //不等null，那就说明这个流对象已经实例化了，
            // 不为null才可以去关闭，为null的话，怎么去关闭呢。
            //就好比你要锁门，前提是门有了才能去锁，没有门怎么锁呢。
            if(fis != null){
              //  fis.close();  会有异常  用try --catch
                try {
                    fis.close();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
    }
}
